<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>String对象</title>
</head>
<body>
<h1>string对象属性中，一个英文字符占一个字节，一个中文字符占两个字节。</h1>
<script>
let newsting=new String(`abcdefg`);
let p=newsting.length;
document.write(p);
</script>
<hr>
获取自定义的字符量newStr的长度 <br>
<script>
let newstr=`abcdefg`;
let p2=newstr.length;
document.write(p2);
</script>
<hr>
将金庸小说人物按姓名按字数分类 <br>
<script>
let 金庸群侠=new Array(`张无忌`,`郭靖`,`东方不败`,`乔峰`,`令狐冲`,`完颜洪烈`,`杨过`,`金轮法王`,`韦小宝`);
let twoname=``;
let threename=``;
let fourname=``;
for (let i = 0; i < 金庸群侠.length; i++) {
    if (金庸群侠[i].length==2) {
        twoname+=金庸群侠[i]+``;
    }
    if (金庸群侠[i].length==3) {
        threename+=金庸群侠[i]+``;
    }
    if (金庸群侠[i].length==4) {
        fourname+=金庸群侠[i]+``;
    }
}
document.write(`二字人物：`+twoname);
document.write(`<br>三字人物：`+threename);
document.write(`<br>四字人物：`+fourname);
</script>
<hr>
检索4个字的书藉 <br>
<script>
let book=new Array(`明史演义`,`明代社会生活史`,`紫禁城的黄昏`,`国史十六讲`,`停滞的帝国`,`唐朝定居指南`,`明史简述`,`明史十讲`,`大明风物志`,`皇帝与秀才`);
let booak="";
for (let i = 0; i < book.length; i++) {
    if(book[i].length==4)
    booak+=book[i]+`-`;
}
document.write(`<br>四字的书有：`+booak);
</script>
<hr>
模拟用户注册过程，用户名不能超过10位，过10位，则提示错误信息。 <br>
<form action="" name="form1">
<input type="text" name="username" size="25"/>
<input type="button" value="注册" onclick="check(form1)"/>
</form>
<script>
function check(form){
    let username=form.username.value;
    if (username==``) {
        alert(`户名不能为空`);
    } else if(username.length>10) {
        alert(`用户名不能超过10位~`)
    }else{
        alert(`恭喜，用户名符合要求！`);
    }
}
</script>
<h1>string对象方法，实现对语句的处理</h1>
使用charAt可以在string字符串中查找字符 <br>
<script>
const ab=`你好发哥，我很作业兴你`;
document.write(ab.charAt(3));
</script>
<hr>
使用indexOf()方法可以返回某个字 符串在字串中首次出现的位置 <br>
<script>
const a30=`你好零零七，我是七三一零韩佳良零的人`;
document.write(a30.indexOf(`零`)+`<br>`);
document.write(a30.indexOf(`零`,4)+`<br>`);
document.write(a30.indexOf(`零的人`,4)+`<br>`);
document.write(a30.indexOf(`零的人民`,4)+`<br>`);
</script>
<hr>
获取字符“四”在绕口令中出现的次数 <br>
<script>
const rkl=`四是四，十是十，十四是十四，四十是四十`;
let position=0;
let 次数=-1;    //字符出现的次数
let index=0;    //开始查找的位置
while (position!=-1) {
    position=rkl.indexOf(`四`,index);
    次数+=1;
    index=position+1;
}
document.write(`定义完整字符串：`+rkl);
document.write(`<br/>四的出现频率是：`+次数);
</script>
<hr>
使用indexOf()判断邮箱是否正确，基于@和.符号来识别 <br>
<form action="" name="form2">
注册邮箱：<input type="text" name="email"/>
<input type="button" value="注册" onclick="jjp(form2)"/>
</form>
<script>
function jjp(form){
    let email=form.email.value;
    let jj1=email.indexOf(`@`);
    let jj2=email.indexOf(`.`);
    if (email==``) {
        alert(`注册邮箱不能为空`);
        
    } else if(jj1>0 && jj2-jj1>1 && jj2<email.length-1){
        alert(`注册邮箱符合要求~`);
    }    else {
        alert(`注册邮箱格式不正确！`);
    }
}
</script>
<hr>
查找含0431的手机号码 <br>
<script>
let sjhm=new Array(`1385566****`,`1560431****`,`1304316****`,`1580433****`,`139******0431`);
let 符号手机号=``;
for (let i = 0; i < sjhm.length; i++) {
    if(sjhm[i].indexOf(`0431`)!=-1){
        符号手机号+=sjhm[i]+`<br>`;
    }
}
document.write(`带0431的手机号有：<br>`+符号手机号);
</script>
<hr>
lastIndexOf()方法，用于返回某个字符串在字符串中最后出现的位置 <br>
你好零零七，我是零零发 中，零最后出现的位置：  <br>
<script>
const 后来=`你好零零七，我是零零发`;
document.write(后来.lastIndexOf(`零`)+`<br>`);
document.write(`第四个零出现的位置：`+后来.lastIndexOf(`零`,4)+`<br>`);
document.write(`第四个零出现的位置：`+后来.lastIndexOf(`零零八`)+`<br>`);
document.write(`发 字最后出现的位置：`+后来.lastIndexOf(`发`)+`<br>`);
</script>
<hr>
在string字符串对象中，可以使用slice()、substr()、substring()三种方法截取字符串 <br>
slice()方法 可以提取字符串的片断，并在新的字符串中返回被提取的部份。 <br>
<script>
const r提=`你好javascript`;
document.write(r提.slice(2)+`<br>`);
document.write(r提.slice(2,6)+`<br>`);
document.write(r提.slice(0,-6)+`<br>`);
</script>
<hr>
substr()方法 可以从字符串的指定位置开始截取指定长度的子字符串 <br>
<script>
const r提2=`你好javascript`;
document.write(r提2.substr(2,1)+`<br>`);
document.write(r提2.substr(2,4)+`<br>`);
</script>
<hr>
截取网站公告标题 <br>
<script>
const gg1=`明日科技即将取得新愿景欢迎基础学系列课程`;
const gg2=`明日科技即新上市教程欢迎基础学系列课程中华人民共和国`;
const gg3=`明日科技全年打折欢迎基础学系列课程中华人民共和国一律一五销售`;
const gg4=`明日科技名师师班欢迎基础学系列课程中华人民共和国一律一五销售formaengliwf`;
const gg5=`明日科技即将上市`;
function 截示题(扣作一下){
    if (扣作一下.length>10) {
        return 扣作一下.substr(0,10)+`...`;
    } else {
        return 扣作一下;
    }
}
</script>
在html中输出: <br>
<script>
document.write(`<li>`+截示题(gg1)+`</li>`);
document.write(`<li>`+截示题(gg2)+`</li>`);
document.write(`<li>`+截示题(gg3)+`</li>`);
document.write(`<li>`+截示题(gg4)+`</li>`);
document.write(`<li>`+截示题(gg5)+`</li>`);
</script>
<hr>
截取QQ邮箱的QQ号 <br>
<script>
const qq=`238383828@qq.com`;
document.write(`QQ邮箱地址是：`+qq+`<br>`);
let qq2=parseInt(qq);
let qq长度=parseInt(qq).toString().length;
document.write(qq2+`长度是：`+qq长度);
document.write(`<br>截出来可用参：`+qq.slice(1,qq长度));
</script>
<hr>
将13630016显示为13,630,016，实现数字化的分组显示： <br>
<script>
function convert(nums) {
    let 结果=0; //定义变量并初始化
    let 排序=``;    //定义变量
    if (isNaN(nums)) {
        结果=0;
    } else {
        if (nums.length<4) {
            结果=nums; //如果小于四位，直接赋值
            
        } else {
            传值来了=nums.indexOf(`.`,1); //获取数字中小数点的位置
            if (传值来了>0) {
                排序=nums.substr(传值来了); //获取小数部份的字符串，包括小数点
                res=nums.substr(0,传值来了) //获取整数部份的字符串
            } else {
                res=nums; //如果没有小数部份，将数字直接赋值为res
            }
            let 最终值=``;
            for (let i = res.length;i>0;i-=3) {
                if(i-3>0){
                    最终值=`,`+res.substr(i-3,3)+最终值;
                }else{
                    最终值=res.substr(0,i)+最终值;
                }
            }
            结果=最终值+排序; //连接整数和小数
        }
    }
    return 结果; //返回结果
}
function deal(){
    result.innerHTML="`转换结果是："+convert(form3.number.value);
}
</script>

<form action="" name="form3">
请输入要转换的长数字：
<input type="text" name="number" id="number" value="" maxlength="15">
<input name="Submit" type="button" value="转换" onclick="deal()"/>
<input name="Submit2" type="reset" value="重置" />
<div id="result">转换结果：</div>
</form>
<hr>
substring()方法用于提取字符串两个指定的索引号之间的字符 <br>
<script>
const 开会=`你好JAVA阿宁宝宝s`;
document.write(开会.substring(2)+`<br/>`);
document.write(开会.substring(2,6)+`<br/>`);
</script>
<h1>大小写转换</h1>
toLowerCase()方法可以把字符串转为小写模式 <br>
<script>
const 定来=`zoomlaCMS中国最好的软件`;
document.write(定来.toLowerCase());
</script>
<hr>
toUpperCase()将字符串转为大写 <br>
<script>
const 定来2=`zoomlaCMS中国最好的软件`;
document.write(定来2.toUpperCase());
</script>
<h1>连接和拆分</h1>
concat()方法 用于连接两个或多个字符串
<script>
const 发1=`新力`;
const 发2=`禧园`;
document.write(`<br>`+发1+发2.concat());
const 发3=new Array(`胡一刀`,`小龙女`,`阿力果`,`超人`);
const 发4=new Array(`台湾省`,`北京市`,`韭菜`,`月饼`);
document.write(`<br>`+发3+发4.concat()+`<br>`);
for (let i = 0; i < 发3.length; i++) {
    document.write(发3[i].concat(发4[i])+`<br>`)
}
</script>
<hr>
split()方法，用于将字符串分割成字符串数组 <br>
<script>
const 来之也=`I like zoomla cms`;
document.write(来之也.split(` `)); //以空格式分
document.write(`<br>`+来之也.split(``));//以空字符串分
document.write(`<br>`+来之也.split(` `,2));//以空字符串分并返回两个元素
</script>
<hr>
输出梁山好汉的人和事迹。 <br>
<table cellspacing="1" bgcolor="#999999">
<tr height="30" bgcolor="#ffffff">
    <th align="center" width="100">人物名称</th>
    <th align="center" width="100">人物绰号</th>
    <th align="center" width="100">主要事迹</th>
</tr>
<script>
const 好汉名单=`宋江，卢俊义，林冲，鲁智深，武松`; 
const 雅号=`及时玉，玉麒麟，豹子头，花和尚，行者`;
const 主要事迹=`领导梁山起义，活捉史文恭，风雪女神庙，倒拔垂杨柳，醉打蒋门神`;
const i好汉名单=好汉名单.split(`，`);
const i雅号=雅号.split(`，`);
const i主要事迹=主要事迹.split(`，`);
for (let i = 0; i < i好汉名单.length; i++) {
    document.write(`<tr height=26 bgcolor="#ffffff">`)
    document.write(`<td align="center">`+i好汉名单[i]+`</td>`);
    document.write(`<td align="center">`+i雅号[i]+`</td>`);
    document.write(`<td align="center">`+i主要事迹[i]+`</td>`);
    document.write(`</tr>`);
}
</script>
</table>
<hr>
对一组字符串进生重切换。 <br>
<script>
const a11=`零基础学JavaScript@零基础学PHP@零基础学Java`;
const a12=a11.split(`@`);
document.write(`原数组：`+a11+`<br>`);
document.write(`转换后的字符串：`);

for (let i = 0; i < a12.length; i++) {
    document.write(a12[i]+`*`);
}
</script>

<hr>
对一组字符串进生重切换-使用join方法。 <br>
<script>
const a101=`零基础学JavaScript@零基础学PHP@零基础学Java`;
const a102=a101.split(`@`);
const a103=a102.join(`*`);
document.write(`原数组：`+a101+`<br>`);
document.write(`新数组：`+a103);
</script>
<hr>
随机生成验证码,输入生成的码位数点按钮：　<br>
<script>
function ranStr(diggg){
if(diggg==``||isNaN(diggg)) //判断为空或者非数字
{
    alert(`请输入数字`);

} else{
const 验证码池=`0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G`;//定义字符串
码之码=验证码池.split(`,`);//转成数组
let 结果=``;
let 变量=0;
for (let i = 0; i < diggg; i++) {
    变量=parseInt(Math.random()*码之码.length); //获取字符串随机索引
    结果=结果+码之码[变量];
}
alert(结果);
}
}
</script>
<form action="" name="form4">
<input type="text" name="diggg">
<input type="button" value="生成随机码" onClick="ranStr(form.diggg.value)"/>

</form>
<h1>格式化字符串</h1>
<script>
const i1=`你好JavaScript`;
document.write(`原字符串：`+i1);
document.write(`<br>big：`+i1.big());
document.write(`<br>small：`+i1.small());
document.write(`<br>fontsize：`+i1.fontsize(20));
document.write(`<br>bold：`+i1.bold());
document.write(`<br>\ small：`+i1.small());
document.write(`<br>italics斜体：`+i1.italics());
document.write(`<br>link超链接：`+i1.link(`http://z01.com`));
document.write(`<br>strike删除线：`+i1.strike());
document.write(`<br>fixed以打字机文本显示：`+i1.fixed());
document.write(`<br>fontcolor字体颜色：`+i1.fontsize(`#ff0033`));
document.write(`<br>sub下标：`+i1.sub());
document.write(`<br>sup上标：`+i1.上标());
</script>





























</body>
</html>